' Routine to draw a pointer
' Parameters are:
' x-coordinate of centre of gauge
' y-coordinate of centre of gauge
' pointer length
' radial of pointer to be drawn (0-360 degrees)
' colour to draw pointer
'
Sub needle(x As integer, y As integer, size As integer, angle As integer, col As integer)
Local integer x1,y1,x2,y2,x3,y3,x4,y4,j
    x1=Sin(Rad(angle-90))*size/10 + x
    y1=-Cos(Rad(angle-90))*size/10 + y
    x2=Sin(Rad(angle))*size + x
    y2=-Cos(Rad(angle))*size + y
    x3=Sin(Rad(angle+90))*size/10 + x
    y3=-Cos(Rad(angle+90))*size/10 + y
    If Not firsttime Then
      Line x,y,lastx2,lasty2,,0
    Else
      firsttime=0
    EndIf
      Line x,y,x2,y2,,col
    lastx1=x1
    lastx2=x2
    lastx3=x3
    lasty1=y1
    lasty2=y2
    lasty3=y3
End Sub

' Routine to draw a segment of a circle
' Parameters are:
' x-coordinate of centre of circle
' y-coordinate of centre of circle
' radius of circle
' start radial of segment to be drawn (0-360 degrees)
' end radial of segment to be drawn (0-360 degrees)
' colour to draw segment
'
Sub segment(x As integer, y As integer, size As integer, startradial As integer, endradial As integer, colour As integer)
  Local integer i,j,x1,x2,y1,y2,sr,er
  If startradial<endradial Then
    sr=startradial
    er=endradial
  Else
    er=startradial
    sr=endradial
  EndIf
  For i=sr+stepsize To er Step stepsize
    x2=Sin(Rad(i))*size + x
    y2=-Cos(Rad(i))*size + y
    x1=Sin(Rad(i-stepsize))*size + x
    y1=-Cos(Rad(i-stepsize))*size + y
    Line x,y,x2,y2,,colour
  Next i
End Sub

sub mm.startup
  R61505V_V44(2,35) 'orientation, reset pin number
end sub
   
'**********Append this code and below onto the end of your MMBasic program*********** 
' 
' Copyright (c) Peter Mather 2015 
' 
' Initialise the Display Driver for R61505V controlled TFT LCD Panel in 8-bit databus, 16-bit mode 
' i.e. RGB565. This is optimised for the 44-pin uM2 and uses defined pinout except for the reset pin 
' 
' R61505V_V44 initialises the loadable CFunction driver so that you can use all of the 
' MMBasic graphic commands in your program. 
' Parameters:
'     Orient% LANDSCAPE=1,PORTRAIT=2,RLANDSCAPE=3,RPORTRAIT=4 
'     RST% is pin number of Reset signal 
' 
' After Calling R61505V_V44, any of the usual MM Graphic commands may be used 
' in your MMBasic program, eg BOX, TEXT, LINE, CIRCLE etc 
' 
' Note:  you must use pins 25,26,27,36,37,38,2,3 for the data pins 
'        you must use pin 4 for RS and pin 5 for WR 
'        Tie CS Low and tie RD high
'
' For TFT1P4967 displays connect to data pins DB8-DB15
' For TFT1P2477 displays connect to data pins DB0-DB7
' 
' Ver 1.10 2016-02-14  Initial Release 
' 
'********************************************************************************** 
'  File ILI9325_V44.bas  written 14-Feb-2016  16:11:36
'
CSUB R61505V_V44
     000001BD
     'writeRegister
     7C833A00 34630200 3C02BF88 AC436230 24030200 AC436234 AC436238 308400FF 
     34840200 AC446230 AC436234 AC436238 2402FFFF 10A2000C 7CA33A00 34630300 
     3C02BF88 AC436230 24030200 AC436234 AC436238 30A500FF 34A50300 AC456230 
     AC436234 AC436238 03E00008 00000000 
     'defineregion
     27BDFFD8 AFBF0024 AFB40020 AFB3001C AFB20018 AFB10014 AFB00010 2490FFFF 
     02063021 24B2FFFF 02479021 3C039D00 8C620094 8C420000 8C630098 8C630000 
     0043382B 10E00003 00604021 00404021 00601021 3C039D00 8C630090 80630015 
     24070002 10670007 24070004 1067000B 24070001 5467001D 24B0000A 10000013 
     00129027 00A0A021 2490000A 24D1000A 00A09821 1000001D 02002821 00068027 
     02088021 00048827 02288821 2413FFF5 02729023 0242A021 02659823 02629021 
     02409821 10000011 02202821 02488021 00058827 02288821 0080A021 00C09021 
     00809821 10000009 02202821 2651000A 2412FFF5 0246A023 0282A021 02449023 
     02429021 02409821 02002821 24040020 0411FF9F 00000000 24040021 02602821 
     0411FF9B 00000000 24040050 02002821 0411FF97 00000000 24040052 02802821 
     0411FF93 00000000 24040051 02202821 0411FF8F 00000000 24040053 02402821 
     0411FF8B 00000000 24040022 2405FFFF 0411FF87 00000000 8FBF0024 8FB40020 
     8FB3001C 8FB20018 8FB10014 8FB00010 03E00008 27BD0028 
     'DrawBitmap_R61505V
     27BDFFB0 AFBF004C AFBE0048 AFB70044 AFB60040 AFB5003C AFB40038 AFB30034 
     AFB20030 AFB1002C AFB00028 AFA40050 00A0F021 00C09021 AFA7005C 8FB00060 
     8FA30064 8FA20068 8FB3006C 3C069D00 8CC70094 8CF10000 8CC60098 8CC60000 
     AFA60010 0003BC03 32F700F8 7C661340 02E6B825 36F70300 0003B143 32D600E0 
     7C6320C0 02C3B025 36D60300 0002AC03 32B500F8 7C431340 02A3A825 36B50300 
     0002A143 329400E0 7C4220C0 0282A025 72123002 8FA2005C 72023802 0411FF6A 
     00000000 8FA3005C 1860005C 36940300 02007821 AFBE0014 00121023 AFA2001C 
     7072F002 27DEFFFF AFB20020 00007021 AFA00018 24180001 3C05BF88 1000004B 
     24060200 04400019 0051202B 50800018 24630001 05220016 24630001 51600014 
     24630001 91A40000 008C2024 10800009 00000000 ACB76230 ACA66234 ACA66238 
     ACB66230 ACA66234 ACA66238 10000008 24630001 ACB56230 ACA66234 ACA66238 
     ACB46230 ACA66234 ACA66238 24630001 1470FFE4 24420001 24E70001 2508FFFF 
     10F20010 014F5021 00EE1021 24430007 284D0000 006D100B 000268C3 026D6821 
     000817C3 00021742 01026021 318C0007 01826023 01986004 01401021 1000FFD1 
     00001821 27390001 17300004 25290001 10000009 8FA30018 0000C821 1A40FFF9 
     8FAA0050 03C04021 00003821 8FA20010 1000FFE5 0122582B 24630001 AFA30018 
     8FA20014 004F1021 AFA20014 8FA3001C 03C3F021 8FA20020 01C27021 8FA30018 
     8FA2005C 10620006 8FBF004C 1E00FFEA 8FA90014 1000FFF0 8FA30018 8FBF004C 
     8FBE0048 8FB70044 8FB60040 8FB5003C 8FB40038 8FB30034 8FB20030 8FB1002C 
     8FB00028 03E00008 27BD0050 
     'DrawRectangle_R61505V
     27BDFFD0 AFBF002C AFB50028 AFB40024 AFB30020 AFB2001C AFB10018 AFB00014 
     00808021 00A09021 00C08821 8FB40040 24020001 16820007 00E09821 24040007 
     24050103 0411FED1 00000000 10000009 0211102A 24020002 16820006 0211102A 
     24040007 24050133 0411FEC8 00000000 0211102A 14400005 0253102A 02001021 
     02208021 00408821 0253102A 14400004 2A040000 02401021 02609021 00409821 
     0004800B 02002021 3C029D00 8C420094 8C420000 0202282B 2443FFFF 0065200A 
     2A260000 0006880B 0222182B 2442FFFF 0043880A 2A450000 0005900B 02402821 
     3C029D00 8C420098 8C420000 0242302B 2443FFFF 0066280A 2A670000 0007980B 
     0262182B 2442FFFF 0043980A 24070001 00E43023 00D13021 00E53823 00F33821 
     70E6A802 0411FEB5 00000000 00142C03 30A500F8 7E821340 00A22825 34A50300 
     00141143 304200E0 7E9420C0 0054A025 36940300 50B40005 3C02BF88 16A00018 
     26A4FFFF 10000023 8FBF002C AC456230 24030200 AC436234 AC436238 AC436234 
     AC436238 26B5FFFF 12A00019 26B5FFFF 3C03BF88 24020200 2404FFFF AC626234 
     AC626238 AC626234 AC626238 26B5FFFF 16A4FFFA 8FBF002C 1000000F 8FB50028 
     3C02BF88 24030200 2406FFFF AC456230 AC436234 AC436238 AC546230 AC436234 
     AC436238 2484FFFF 1486FFF8 00000000 8FBF002C 8FB50028 8FB40024 8FB30020 
     8FB2001C 8FB10018 8FB00014 03E00008 27BD0030 
     'getFPC
     27BDFFF8 AFBF0004 00852023 03E42021 ACC40000 8FBF0004 03E00008 27BD0008 
     'pstring
     27BDFFE0 AFBF001C AFB00018 00808021 00002021 3C059D00 24A506D0 27A60010 
     0411FFEF 00000000 8FA40010 3C029D00 8C42002C 0040F809 02042021 8FBF001C 
     8FB00018 03E00008 27BD0020 
     'main
     27BDFFA8 AFBF0054 AFB30050 AFB2004C AFB10048 AFB00044 00808021 00A08821 
     27B30038 00002021 3C059D00 24A50730 02603021 0411FFD7 00000000 3C029D00 
     8C430090 8E040000 A0640015 8C420090 8E230000 A043002E 24020019 AFA20018 
     2402001A AFA2001C 2402001B AFA20020 24020024 AFA20024 24020025 AFA20028 
     24020026 AFA2002C 24020002 AFA20030 24020003 AFA20034 27B20018 3C109D00 
     8E510000 8E020010 02202021 24050008 0040F809 00003021 8E020010 02202021 
     24050065 0040F809 00003021 8E02001C 02202021 0040F809 24050005 26520004 
     5653FFF0 8E510000 3C109D00 8E020010 24040004 24050008 0040F809 00003021 
     8E020010 24040004 24050065 0040F809 00003021 3C11BF88 24020100 AE226238 
     8E020010 24040005 24050008 0040F809 00003021 8E020010 24040005 24050065 
     0040F809 00003021 24020200 AE226238 8E030090 8E020010 8064002E 24050008 
     0040F809 00003021 8E030090 8E020010 8064002E 24050065 0040F809 00003021 
     8E030090 8E02001C 8064002E 0040F809 24050006 8E030090 8E02001C 8064002E 
     0040F809 24050006 8E020004 0040F809 3404C350 8E030090 8E02001C 8064002E 
     0040F809 24050005 8E020004 0040F809 3404C350 8E030090 8E02001C 8064002E 
     0040F809 24050006 8E020004 0040F809 3404C350 240400E5 34058000 0411FDC3 
     00000000 00002021 24050001 0411FDBF 00000000 24040001 24050100 0411FDBB 
     00000000 24040002 00002821 0411FDB7 00000000 24040003 24051030 0411FDB3 
     00000000 24040004 00002821 0411FDAF 00000000 24040008 24050202 0411FDAB 
     00000000 24040009 2405002F 0411FDA7 00000000 2404000A 00002821 0411FDA3 
     00000000 2404000C 00002821 0411FD9F 00000000 2404000D 00002821 0411FD9B 
     00000000 2404000F 00002821 0411FD97 00000000 24040010 00002821 0411FD93 
     00000000 24040011 24050007 0411FD8F 00000000 24040012 00002821 0411FD8B 
     00000000 24040013 00002821 0411FD87 00000000 8E020004 0040F809 3404C350 
     24040010 24050730 0411FD80 00000000 24040011 24050007 0411FD7C 00000000 
     8E020004 0040F809 24042710 24040012 24050138 0411FD75 00000000 8E020004 
     0040F809 24042710 24040013 24051A00 0411FD6E 00000000 24040029 2405000C 
     0411FD6A 00000000 8E020004 0040F809 24042710 24040030 00002821 0411FD63 
     00000000 24040031 24050505 0411FD5F 00000000 24040032 24050004 0411FD5B 
     00000000 24040035 24050006 0411FD57 00000000 24040036 24050707 0411FD53 
     00000000 24040037 24050105 0411FD4F 00000000 24040038 24050002 0411FD4B 
     00000000 24040039 24050707 0411FD47 00000000 2404003C 24050704 0411FD43 
     00000000 2404003D 24050807 0411FD3F 00000000 24040050 00002821 0411FD3B 
     00000000 24040051 240500EF 0411FD37 00000000 24040052 00002821 0411FD33 
     00000000 24040053 2405013F 0411FD2F 00000000 24040060 24052700 0411FD2B 
     00000000 24040061 24050001 0411FD27 00000000 2404006A 00002821 0411FD23 
     00000000 24040021 00002821 0411FD1F 00000000 24040020 00002821 0411FD1B 
     00000000 24040080 00002821 0411FD17 00000000 24040081 00002821 0411FD13 
     00000000 24040082 00002821 0411FD0F 00000000 24040083 00002821 0411FD0B 
     00000000 24040084 00002821 0411FD07 00000000 24040085 00002821 0411FD03 
     00000000 24040090 24050010 0411FCFF 00000000 24040092 00002821 0411FCFB 
     00000000 24040093 24050003 0411FCF7 00000000 24040095 24050110 0411FCF3 
     00000000 24040097 00002821 0411FCEF 00000000 24040098 00002821 0411FCEB 
     00000000 24040007 24050173 0411FCE7 00000000 8E020004 0040F809 3404C350 
     8E020090 80420015 24030002 10430009 24051030 24030004 10430006 24051000 
     38450001 24031018 24041028 0085180A 00602821 24040003 0411FCD4 00000000 
     3C029D00 8C420090 90420015 30420001 10400007 3C039D00 8C640098 240200E6 
     AC820000 8C630094 10000006 AC620000 8C640094 240200E6 AC820000 8C630098 
     AC620000 8FA50038 3C029D00 8C430048 3C049D00 24840474 00852021 AC640000 
     8FA50038 8C43004C 3C049D00 24840208 00852021 AC640000 8C430048 8C440094 
     8C860000 8C420098 8C470000 AFA00010 8C620000 00002021 00002821 24C6FFFF 
     0040F809 24E7FFFF 3C049D00 24840D88 0411FE50 00000000 8FBF0054 8FB30050 
     8FB2004C 8FB10048 8FB00044 03E00008 27BD0058 
     '.rodata
     'startup
     35313652 20563530 76697264 6C207265 6564616F 000A0D64 
  End CSUB